package com.zhiyou100.controller;

import java.sql.Date;

import javax.security.auth.message.callback.PrivateKeyCallback.Request;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
//开启注解   等同于创建了一个bean 标签
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.zhiyou100.model.Test;

@Controller
// 二级目录
@RequestMapping("test")
public class TestController {
	@RequestMapping("test.do")
	public String test(Model model, String msg) { // model 传数据用
		model.addAttribute("test", "测试类+springmvc 基本配置类");
		model.addAttribute("msg", msg);
		return "test/show"; // 返回得是 jsp 界面
	}

	@RequestMapping("1.do")
	// 接受的值和jsp界面传来的name 必须一样
	public String m1(String name, Integer money, Date time) {
		System.out.println(name + ":" + money + ":" + time);
		return "test/show";
	}

	@RequestMapping("2.do")
	// 利用model类来接受传来的值
	public String m2(Test test) {
		System.out.println(test);
		return "test/show";
	}

	// 请求转发 和 页面重定向
	@RequestMapping("red.do")
	public String red() {
		// 页面重定向 客户端行为 访问2次
		return "redirect:test.do";
	}

	@RequestMapping("for.do")
	public String for1() {
		// 请求转发 服务器行为 访问1次
		return "forward:test.do";
	}

	// 页面重定向 如果非要传数据
	@RequestMapping("ref.do")
	public String ref(Model model) {
		model.addAttribute("msg", "页面重定向");
		return "redirect:test.do";
	}

	// 如果想访问 别的类中的url 在前 加个 /
	@RequestMapping("other.do")
	public String other(Model model) {
		model.addAttribute("msg", "访问别的类");
		return "redirect:/1.do";
	}

	@RequestMapping("one.do")
	public String show() {

		return "test/show";
	}
	//                               前端界面可以是post请求 也可以是get请求
	@RequestMapping(value ="two.do",method = {RequestMethod.POST,RequestMethod.GET})
	public String two(String id, String name) {

		System.out.println(id + name);
		return "";
	}
		// 								只有一个参数的时候 可以不加大括号{}
	@RequestMapping(value ="three.do",method = RequestMethod.POST,params="id")
	public String three(String id, String name) {

		System.out.println(id + name);
		return "";
	}
	//在web.xml配置为/时  /{id} http://localhost:8080/SpringMVC/test/111 会将输入的url地址传到id上
 	@RequestMapping("/{id}")
	public String four(@PathVariable Integer id) {

		System.out.println(id + "============");
		return "";
	}

}
